#ifndef _BUFFER_H_
#define _BUFFER_H_

#include <stddef.h>

class buffer
{
public:
	buffer(size_t size){mSize = size;};
	virtual ~buffer(void){};

	size_t get_buffer_size(){return mSize;};
	virtual size_t get_data_size() = 0;
	virtual size_t get_free_size() = 0;
	virtual size_t write_buffer(const void *data, size_t count) = 0;
	virtual size_t read_buffer(void *data, size_t count) = 0;	
	virtual void flush_buffer() = 0;
private:
	virtual void free_buffer() = 0;
	size_t mSize;
};



#endif